package com.bestcem.xm.member.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.member.controller.vo.ExtendFieldVO;
import com.bestcem.xm.member.grpc.service.param.extendfield.BatchInsertFieldsParam;
import com.bestcem.xm.member.grpc.service.param.extendfield.BatchUpdateFieldsParam;
import com.bestcem.xm.member.grpc.service.param.extendfield.ListDisplayFieldEnumItemsParam;
import com.bestcem.xm.member.service.dto.ExtendFieldDTO;
import com.bestcem.xm.member.service.dto.ExtendFieldEnumItemDto;

import java.util.List;

/**
 * @author dc.wang <dc.wang@idiaoyan.com>
 * @version V1.0
 * @description 扩展字段接口
 * @date 2021/7/20
 */
public interface ExtendFieldService {
    /**
     * 查询联系人下所有扩展字段
     * @param param 请求参数
     * @return 扩展字段Dto
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/25
     */
    ServiceResult<List<ExtendFieldEnumItemDto>> listDisplayFieldEnumItems(ListDisplayFieldEnumItemsParam param);

    /**
     * 批量创建扩展字段
     * @param param 请求参数
     * @return 扩展字段Dto
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/8/9
     */
    ServiceResult<List<ExtendFieldDTO>> batchCreateFields(BatchInsertFieldsParam param);

    /**
     * 批量更新联系人扩展字段
     * @param param 扩展字段集合
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/6/25
     */
    ServiceResult<List<ExtendFieldDTO>> batchUpdatedFields(BatchUpdateFieldsParam param);

    /**
     * 获取扩展字段列表
     *
     * @param attribute
     * @param orgId
     * @return
     */
    ServiceResult<List<ExtendFieldVO>> getFields(Integer attribute, String orgId);
}
